﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using System.Web.Security;
using Comissoes.Models;
using Comissoes.Security;

namespace Comissoes.Controllers
{
    public class AcessoController : Controller
    {
        public ActionResult Login()
        {
            return View();
        }

        public ActionResult Form()
        {
            return View();
        }

        /// <summary>
        /// Valida o login do usuário
        /// </summary>
        /// <param name="COD_OPER">Código ou Email do Operador</param>
        /// <param name="SENHA_PESSOA">Senha do Operador</param>
        /// <returns></returns>
        public ActionResult LoginValidate(string NOME_USUARIO, string SENHA_USUARIO)
        {
            using (xcontEntities db = new xcontEntities())
            {
                try
                {
                    PESSOAS pessoa = new PESSOAS();

                    if (db.OPERADORES.Any(t => t.COD_OPER == NOME_USUARIO))
                    {
                        pessoa = db.OPERADORES.Include("PESSOAS").FirstOrDefault(t => t.COD_OPER == NOME_USUARIO).PESSOAS;
                    }
                    else if (db.EMAILS.Any(t => t.ENDERECO_EMAIL == NOME_USUARIO))
                    {
                        pessoa = db.EMAILS.Include("PESSOAS").FirstOrDefault(t => t.ENDERECO_EMAIL == NOME_USUARIO).PESSOAS;
                    }
                    if (FormsAuthentication.HashPasswordForStoringInConfigFile(SENHA_USUARIO, "MD5") == pessoa.SENHA_PESSOA)
                    {
                        Access.Login(pessoa.OPERADORES.FirstOrDefault());

                        return Json(true, JsonRequestBehavior.AllowGet);
                    }

                    return Json("Operador ou senha inválidos", JsonRequestBehavior.AllowGet);
                }
                catch (Exception ex)
                {
                    return Json(ex.Message, JsonRequestBehavior.AllowGet);
                }
            }
        }
    }
}